This disclosure relates to data security and cryptography and key generation.
Key generation is the process of generating keys for use in various software related applications, such as cryptography, unlocking access to software, redeeming content (e.g. pursuant to a promotion), or in conjunction with a digital rights management system. A key may be used to access whatever data is being protected, such as software or access to a video game. Keys are often used in connection with the distribution of software, where a unique key is included with the software so that only a legitimate buyer of the software can access the functionality of the software.
Keys are generally comprised of a numerical value, which may represent a numeric. alphanumeric, or other symbolic value. In some cases keys are randomly generated using a random number generator (RNG) or pseudorandom number generator (PRNG). A PRNG is a computer algorithm that produces data that appears random under analysis. In other situations. the key is created using a passphrase and a key generation algorithm, usually involving a cryptographic hash function such as SHA-1.
Unfortunately, the key does not contain any built-in information about the product or its distribution channel. Rather, the keys are often generated based on randomly generated numbers and require databases of these keys to provide information about the source of the product associated with any particular key.